home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / FONTEDIT.ZIP / MOUSER.PAS < prev    next >
Pascal/Delphi Source File  |  1996-01-02  |  3KB  |  128 lines

  1. {Another Unit By THE DARKMAN Done About 1/2 A year ago when i was young and
  2.  innocent}
  3. Unit Mouser;
  4.  
  5. Interface
  6.  
  7. Procedure Buttons(Left,Right : Boolean; Var lb,rb : Boolean);
  8. Function ClickIn(X1,Y1,X2,Y2 : Integer) : Boolean;
  9. Function NoDriver : Boolean;
  10. Procedure LoadMouse;
  11. Function Xpos : Word;
  12. Function Ypos : Word;
  13. Procedure MouseOff;
  14. Procedure MouseXY(X,Y : Integer);
  15. Procedure MouseRange(X1,Y1,X2,Y2 : Word);
  16.  
  17. Implementation
  18.  
  19. Uses Dos,Crt;
  20.  
  21. Var Lb,Rb : Boolean;
  22.     Regs : Registers;
  23.  
  24.  
  25. {---------------------Procedure To Load Mouse--------------------------------}
  26.  
  27. Procedure LoadMouse;
  28. Begin
  29.      Regs.Ax := $1;
  30.      Intr($33, Regs);
  31. end;
  32.  
  33. {---------------Procedure To Hide Mouse Cur-----------------------------------}
  34.  
  35. Procedure MouseOff;
  36. Begin
  37.      Regs.Ax := $0;
  38.      Intr($33, Regs);
  39. end;
  40.  
  41. {----------------FUNCTION TO LIMIT X + Y AREA OF MOUSE POS--------------------}
  42.  
  43.  
  44. Procedure MouseRange(X1,Y1,X2,Y2 : Word);
  45. Begin
  46.      Regs.Ax := $8;
  47.      Regs.Cx := Integer (Y1) Shl 3;
  48.      Regs.Dx := Integer (Y2) Shl 3;
  49.      Intr($33,Regs);
  50.      Regs.Ax := $7;
  51.      Regs.Cx := Integer (X1) Shl 3;
  52.      Regs.Dx := Integer (X2) Shl 3;
  53.      Intr($33,Regs);
  54. end;
  55.  
  56.  
  57. {--------------------RETURNS THE XPOS OF MOUSE CURSOR------------------------}
  58.  
  59. Function Xpos : Word;
  60. Begin
  61.      Regs.Ax := $0003;
  62.      Intr($33,Regs);
  63.      Xpos := Regs.Cx Shr 3;
  64. end;
  65.  
  66. {----------------------------------------------------------------------------}
  67.  
  68.  
  69. {------------------RETURNS YPOS OF MOUSE CURSOR------------------------------}
  70.  
  71. Function Ypos : Word;
  72. Begin
  73.      Regs.Ax := $0003;
  74.      Intr($33,Regs);
  75.      Ypos := Regs.Dx Shr 3;
  76. end;
  77.  
  78.  
  79. {-------------------SENDS MOUSE TO X / Y POSITION----------------------------}
  80.  
  81. Procedure Mousexy(X,Y : Integer);
  82. Begin
  83.      Regs.Ax := $0004;
  84.      Regs.Cx := X Shl 3;
  85.      Regs.Dx := Y Shl 3;
  86.      Intr($33,Regs);
  87. end;
  88.  
  89.  
  90. {--------PROCEDURE FOR TESTING IF BUTTON WAS PRESSED IN AREA DEFINED---------}
  91.  
  92. Function ClickIn(X1,Y1,X2,Y2 : Integer) : Boolean;
  93. Var Mxpos,Mypos,lb,rb : Boolean;
  94. Begin
  95.      Buttons(lb,rb,lb,rb);
  96.      If (Xpos > X1-2) And (Xpos < X2) Then  Mxpos := True Else Mxpos := False;
  97.      If (Ypos > Y1-2) And (Ypos < Y2) Then Mypos := True Else Mypos := False;
  98.      If (Mypos) And (MxPos) And Lb Then ClickIn := True else ClickIn := False;
  99. end;
  100.  
  101. {----------------------------------------------------------------------------}
  102.  
  103.  
  104. {-------------PROCEDURE TO TEST WHICH BUTTONS WHERE PRESSED------------------}
  105.  
  106. Procedure Buttons(Left,Right : Boolean; Var Lb,rb : Boolean);
  107. Begin
  108.      Regs.Ax := $0003;
  109.      Regs.Bx := $0000;
  110.      Intr($33,Regs);
  111.      If(Regs.Bx And $01) = $01 Then Left := True Else Left := False;
  112.      If(Regs.Bx And $02) = $02 Then Right := True Else Right := False;
  113.      Lb := Left;
  114.      Rb := Right;
  115. end;
  116.  
  117. {----------------------------------------------------------------------------}
  118.  
  119. {-----------------DO NOT TRUST THIS CODE CHECKS IF M DRIVER PRESENT-----------}
  120.  
  121. Function NoDriver : Boolean;
  122. Begin
  123.      Regs.Ax := 0;
  124.      Intr($33,Regs);
  125.      If Regs.Ax > 0 Then NoDriver := False Else NoDriver := True;
  126. end;
  127. end.
  128.